<?php
/**
 *
 */
class DateHandler{

  private $dd;
  private $mm;
  private $aaaa;

  public function convertDateFormatMysql($date){

    //Este bloco if verifica se a data esta no formato dd/mm/aaaa e devolve aaaa-mm-dd
    if(substr($date, 2, 1) == "/" && substr($date, 5, 1) == "/"){

      //Este trecho pega o dia na data em questão
      $this->dd = substr($date, 0, 2);

      //Este trecho pega o mes na data em questão
      $this->mm = substr($date, 3, 2);

      //Este trecho pega o ano na data em questão
      $this->aaaa = substr($date, 6, 4);

      //Este trecho verifica se cada sub string (dia, mes e ano) é numerica
      if(is_numeric($this->dd) && is_numeric($this->mm) && is_numeric($this->aaaa)){
         return $this->aaaa . "-" . $this->mm . "-" . $this->dd;
      } else {
        return "Formato de data invalida";
      }

    //Este bloco if verifica se a data esta no formato aaaa-mm-dd e devolve dd/mm/aaaa
    } else if((substr($date, 4, 1) == "-") && (substr($date, 7, 1) == "-")){
      $this->dd = substr($date, 8, 2);
      $this->mm = substr($date, 5, 2);
      $this->aaaa = substr($date, 0, 4);

      $date = $this->dd . $this->mm . $this->aaaa;

      for ($i = 0; $i < strlen($date); $i++) {
        if (is_numeric(substr($date, $i, 1))) {
          if ($i == 7) {
            return $this->dd . "/" . $this->mm ."/" . $this->aaaa;
          }
        } else {
          return "Formato de data invalida";
          break;
        }
      }

    } else {
      return "Formato de data invalida";
    }

  }

  public function calcIdade($dateNiver){

    $dateSystem = date("Ymd");

    if(substr($dateNiver, 2, 1) == "/" && substr($dateNiver, 5, 1) == "/"){

        $this->dd = substr($dateNiver, 0, 2);
        $this->mm = substr($dateNiver, 3, 2);
        $this->aaaa = substr($dateNiver, 6, 4);

        $dateNiver = $this->aaaa . $this->mm . $this->dd;

        $result = (int) (($dateSystem - $dateNiver) / 10000);

        return $result;

    } else if((substr($dateNiver, 4, 1) == "-") && (substr($dateNiver, 7, 1) == "-")){
        $dateNiver = substr_replace($dateNiver, "",4, 1);
        $dateNiver = substr_replace($dateNiver, "", 6, 1);

        $result = (int) (($dateSystem - $dateNiver) / 10000);

        return $result;
    } else {
        return "Formato de data invalida";
    }
  }
}
?>

